const { defineConfig } = require("@vue/cli-service");
const CompressionPlugin = require('compression-webpack-plugin')
module.exports = defineConfig({
  publicPath: "./",
  lintOnSave: false,
  devServer: {
    host: "localhost", // 主机地址
    port: "8080", // 端口
    proxy: {
      "/api": {
        target: "http://localhost:8080/", // 真实地址
        changeOrigin: true,
        pathRewrite: {
          "/api": "/",
        },
      },
    },
  },
  pages: {
    index: {
      entry: ["node_modules/babel-polyfill/dist/polyfill.js", "src/main.js"],
      template: "public/index.html",
      filename: "index.html",
      chunks: ["chunk-vendors", "chunk-common", "index"],
    },
  },
  configureWebpack: {
    plugins: [
        new CompressionPlugin({
            algorithm: 'gzip', // 使用gzip压缩
            test: /\.js$|\.css$|\.html$/, // 匹配文件名
            filename: '[path][base].gz', // 压缩后的文件名(保持原文件名，后缀加.gz)
            minRatio: 0.8, // 压缩率小于0.8才会压缩
            threshold: 10240, // 对超过10k的数据压缩
            deleteOriginalAssets: false // 是否删除未压缩的源文件，谨慎设置，如果希望提供非gzip的资源，可不设置或者设置为false（比如删除打包后的gz后还可以加载到原始资源文件）
          })
    ]
}
});
